   This file documents the GNU Scientific Library.

   Copyright (C) 1996, 1997, 1998, 1999 The GSL Project.

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.

Householder solver for linear systems
=====================================

 - Function: int gsl_linalg_HH_solve (gsl_matrix * A, const gsl_vector
          * B, gsl_vector * X)
     This function solves the system A x = b directly using Householder
     transformations. On output the solution is stored in X and B is
     not modified. The matrix A is destroyed by the Householder
     transformations.

 - Function: int gsl_linalg_HH_svx (gsl_matrix * A, gsl_vector * X)
     This function solves the system A x = b in-place using Householder
     transformations.  On input X should contain the right-hand side b,
     which is replaced by the solution on output.  The matrix A is
     destroyed by the Householder transformations.

Tridiagonal Systems
===================

 - Function: int gsl_linalg_solve_symm_tridiag (const gsl_vector *
          DIAG, const gsl_vector * OFFDIAG, const gsl_vector * B,
          gsl_vector * X)

 - Function: int gsl_linalg_solve_symm_cyc_tridiag (const gsl_vector *
          DIAG, const gsl_vector * OFFDIAG, const gsl_vector * B,
          gsl_vector * X)

References and Further Reading
==============================

   Further information on the algorithms described in this section can
be found in the following book,

     G. H. Golub, C. F. Van Loan, `Matrix Computations' (3rd Ed, 1996),
     Johns Hopkins University Press, ISBN 0-8018-5414-8.

The LAPACK library is described in,

     `LAPACK Users' Guide' (Third Edition, 1999), Published by SIAM,
     ISBN 0-89871-447-8.

The LAPACK source code can be found at <http://www.netlib.org/lapack>
along with an online copy of the users guide.

   The Jacobi algorithm for singular value decomposition is described in
the following papers,

     J.C.Nash, "A one-sided transformation method for the singular value
     decomposition and algebraic eigenproblem", `Computer Journal',
     Volume 18, Number 1 (1973), p 74--76

     James Demmel, Kresimir Veselic, "Jacobi's Method is more accurate
     than QR", `Lapack Working Note 15' (LAWN-15), October 1989.
     Available from netlib, <http://www.netlib.org/lapack/> in the
     `lawns' or `lawnspdf' directories.

Eigensystems
************

   This chapter describes functions for computing eigenvalues and
eigenvectors.

   The following functions work only for real, symmetric matrices.

 - Function: int gsl_eigen_jacobi_impl (gsl_matrix * MATRIX, gsl_vector
          * EVAL, gsl_matrix * EVEC, unsigned int MAX_ROT, unsigned int
          * NROT)

 - Function: int gsl_la_invert_jacobi_impl (const gsl_matrix * MATRIX,
          gsl_matrix * AINV, unsigned int MAX_ROT)

 - Function: int gsl_eigen_sort_impl (gsl_vector * EVAL, gsl_matrix *
          EVEC, gsl_eigen_sort_t SORT_TYPE)

Special Functions
*****************

   This chapter describes the GSL special function library.

The gsl_sf_result struct
========================

   Almost all the special functions calculate an error estimate along
with the value of the result.  Therefore, structures are provided for
amalgating a value and error estimate.

   The gsl_sf_result struct contains value and error fields.

     typedef struct
     {
       double val;
       double err;
     } gsl_sf_result;

   In some cases, an overflow or underflow can be detected and handled
by a function.  In this case, it may be possible to return a scaling
exponent as well as an error/value pair.  The gsl_sf_result struct
contains value and error fields as well as an exponent field such that
the actual result is obtained as result * 10^(e10).

     typedef struct
     {
       double val;
       double err;
       int    e10;
     } gsl_sf_result_e10;

Airy Functions
==============

   The Airy functions Ai(x) and Bi(x) are defined by the integral
representations

     Ai(x) = {1 / \pi} \int_0^\infty \cos({1/3} t^3 + xt ) dt,
     Bi(x) = {1 / \pi} \int_0^\infty (e^{-t^3/3} + \sin({1/3} t^3 + xt) dt.

Airy Functions
--------------

 - Function: int gsl_sf_airy_Ai_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Ai_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

 - Function: int gsl_sf_airy_Bi_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Bi_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

 - Function: int gsl_sf_airy_Ai_scaled_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Ai_scaled_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

 - Function: int gsl_sf_airy_Bi_scaled_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Bi_scaled_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

Derivatives of Airy Functions
-----------------------------

 - Function: int gsl_sf_airy_Ai_deriv_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Ai_deriv_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

 - Function: int gsl_sf_airy_Bi_deriv_impl (double x, gsl_mode_t mode,
          gsl_sf_result * result)
 - Function: int gsl_sf_airy_Bi_deriv_e (double x, gsl_mode_t mode,
          gsl_sf_result * result)

 - Function: int gsl_sf_airy_Ai_deriv_scaled_impl (double x, gsl_mode_t
          mode, gsl_sf_result * result)
 - Function: int gsl_sf_airy_Ai_deriv_scaled_e (double x, gsl_mode_t
          mode, gsl_sf_result * result)

 - Function: int gsl_sf_airy_Bi_deriv_scaled_e (double x, gsl_mode_t
          mode, gsl_sf_result * result)
 - Function: int gsl_sf_airy_Bi_deriv_scaled_e (double x, gsl_mode_t
          mode, gsl_sf_result * result)

Zeros of Airy Functions
-----------------------

 - Function: int gsl_sf_airy_zero_Ai_e (int s, gsl_sf_result * result)
 - Function: int gsl_sf_airy_zero_Ai_e (int s, gsl_sf_result * result)

 - Function: int gsl_sf_airy_zero_Bi_e (int s, gsl_sf_result * result)
 - Function: int gsl_sf_airy_zero_Bi_e (int s, gsl_sf_result * result)

Zeros of Derivatives of Airy Functions
--------------------------------------

 - Function: int gsl_sf_airy_zero_Ai_deriv_e (int s, gsl_sf_result *
          result)
 - Function: int gsl_sf_airy_zero_Ai_deriv_e (int s, gsl_sf_result *
          result)

 - Function: int gsl_sf_airy_zero_Bi_deriv_e (int s, gsl_sf_result *
          result)
 - Function: int gsl_sf_airy_zero_Bi_deriv_e (int s, gsl_sf_result *
          result)

Bessel Functions
================

Regular Cylindrical Bessel Functions
------------------------------------

 - Function: int gsl_sf_bessel_J0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_J0_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

 - Function: int gsl_sf_bessel_J1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_J1_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Jn_impl (int n, double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_Jn_e (int n, double x, gsl_sf_result *
          result)
     Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Jn_array_impl (int nmin, int nmax,
          double x, double * result_array)
 - Function: int gsl_sf_bessel_Jn_array_e (int nmin, int nmax, double
          x, double * result_array)
     Conditions: nmin <= n <= nmax Exceptional Return Values: GSL_EDOM,
     GSL_EUNDRFLW

Irregular Cylindrical Bessel Functions
--------------------------------------

 - Function: int gsl_sf_bessel_Y0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_Y0_e (double x, gsl_sf_result * result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Y1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_Y1_e (double x, gsl_sf_result * result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW,
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Yn_impl (int n,double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_Yn_e (int n,double x, gsl_sf_result *
          result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW,
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Yn_array_impl (int nmin, int nmax,
          double x, double * result_array)
 - Function: int gsl_sf_bessel_Yn_array_e (int nmin, int nmax, double
          x, double * result_array)
     Domain: x > 0.0 Conditions: nmin <= n <= nmax Exceptional Return
     Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW

Regular Modified Cylindrical Bessel Functions
---------------------------------------------

 - Function: int gsl_sf_bessel_I0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_I0_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EOVRFLW

 - Function: int gsl_sf_bessel_I1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_I1_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_In_impl (int n, double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_In_e (int n, double x, gsl_sf_result *
          result)
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_In_array_impl (int nmin, int nmax,
          double x, double * result_array)
 - Function: int gsl_sf_bessel_In_array_e (int nmin, int nmax, double
          x, double * result_array)
     Domain: nmin >=0, nmax >= nmin Conditions: n=nmin,...,nmax, nmin
     >=0, nmax >= nmin Exceptional Return Values: GSL_EDOM,
     GSL_EOVRFLW, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_I0_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_I0_scaled_e (double x, gsl_sf_result *
          result)
     \exp(-|x|) I_0(x)  Exceptional Return Values: none

 - Function: int gsl_sf_bessel_I1_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_I1_scaled_e (double x, gsl_sf_result *
          result)
     exp(-|x|) I_1(x)  Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_In_scaled_impl (int n, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_In_scaled_e (int n, double x,
          gsl_sf_result * result)
     exp(-|x|) I_n(x)  Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_In_scaled_array_impl (int nmin, int
          nmax, double x, double * result_array)
 - Function: int gsl_sf_bessel_In_scaled_array_e (int nmin, int nmax,
          double x, double * result_array)
     exp(-|x|) I_n(x)  Domain: nmin >=0, nmax >= nmin Conditions:
     n=nmin,...,nmax Exceptional Return Values: GSL_EUNDRFLW

Irregular Modified Cylindrical Bessel Functions
-----------------------------------------------

 - Function: int gsl_sf_bessel_K0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_K0_e (double x, gsl_sf_result * result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_K1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_K1_e (double x, gsl_sf_result * result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW,
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Kn_impl (int n, double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_Kn_e (int n, double x, gsl_sf_result *
          result)
     Domain: x > 0.0 Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW,
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Kn_array_impl (int nmin, int nmax,
          double x, double * result_array)
 - Function: int gsl_sf_bessel_Kn_array_e (int nmin, int nmax, double
          x, double * result_array)
     Conditions: n=nmin,...,nmax Domain: x > 0.0, nmin >=0, nmax >= nmin
     Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_K0_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_K0_scaled_e (double x, gsl_sf_result *
          result)
     exp(x) K_0(x)  Domain: x > 0.0 Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_bessel_K1_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_K1_scaled_e (double x, gsl_sf_result *
          result)
     exp(x) K_1(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Kn_scaled_impl (int n, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Kn_scaled_e (int n, double x,
          gsl_sf_result * result)
     exp(x) K_n(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_Kn_scaled_array_impl (int nmin, int
          nmax, double x, double * result_array)
 - Function: int gsl_sf_bessel_Kn_scaled_array_e (int nmin, int nmax,
          double x, double * result_array)
     exp(x) K_n(x)  Domain: x > 0.0, nmin >=0, nmax >= nmin Conditions:
     n=nmin,...,nmax Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

Regular Spherical Bessel Functions
----------------------------------

 - Function: int gsl_sf_bessel_j0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_j0_e (double x, gsl_sf_result * result)
     j_0(x) = sin(x)/x  Exceptional Return Values: none

 - Function: int gsl_sf_bessel_j1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_j1_e (double x, gsl_sf_result * result)
     j_1(x) = (sin(x)/x - cos(x))/x  Exceptional Return Values:
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_j2_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_j2_e (double x, gsl_sf_result * result)
     j_2(x) = ((3/x^2 - 1)sin(x) - 3cos(x)/x)/x  Exceptional Return
     Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_jl_impl (int l, double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_jl_e (int l, double x, gsl_sf_result *
          result)
     Domain: l >= 0, x >= 0.0 Exceptional Return Values: GSL_EDOM,
     GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_jl_array_impl (int lmax, double x,
          double * result_array)
 - Function: int gsl_sf_bessel_jl_array_e (int lmax, double x, double *
          result_array)
     Domain: lmax >= 0 Conditions: l=0,1,...,lmax Exceptional Return
     Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_jl_steed_array_impl (int lmax, double x,
          double * jl_x_array)
     Uses Steed's method.  Domain: lmax >= 0 Conditions: l=0,1,...,lmax
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

Irregular Spherical Bessel Functions
------------------------------------

 - Function: int gsl_sf_bessel_y0_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_y0_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

 - Function: int gsl_sf_bessel_y1_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_y1_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_y2_impl (double x, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_y2_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_yl_impl (int l, double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_yl_e (int l, double x, gsl_sf_result *
          result)
     Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_yl_array_impl (int lmax, double x,
          double * result_array)
 - Function: int gsl_sf_bessel_yl_array_e (int lmax, double x, double *
          result_array)
     Domain: lmax >= 0 Conditions: l=0,1,...,lmax Exceptional Return
     Values: GSL_EUNDRFLW

Regular Modified Spherical Bessel Functions
-------------------------------------------

   i_l(x) = Sqrt[Pi/(2x)] BesselI[l+1/2,x]

 - Function: int gsl_sf_bessel_i0_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_i0_scaled_e (double x, gsl_sf_result *
          result)
     exp(-|x|) i_0(x)  Exceptional Return Values: none

 - Function: int gsl_sf_bessel_i1_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_i1_scaled_e (double x, gsl_sf_result *
          result)
     exp(-|x|) i_1(x)  Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_i2_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_i2_scaled_e (double x, gsl_sf_result *
          result)
     exp(-|x|) i_2(x)  Exceptional Return Values: GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_il_scaled_impl (int l, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_il_scaled_e (int l, double x,
          gsl_sf_result * result)
     exp(-|x|) i_l(x)  Domain: l >= 0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_il_scaled_array_impl (int lmax, double
          x, double * result_array)
 - Function: int gsl_sf_bessel_il_scaled_array_e (int lmax, double x,
          double * result_array)
     exp(-|x|) i_l(x)  Domain: lmax >= 0 Conditions: l=0,1,...,lmax
     Exceptional Return Values: GSL_EUNDRFLW

Irregular Modified Spherical Bessel Functions
---------------------------------------------

   k_l(x) = Sqrt[Pi/(2x)] BesselK[l+1/2,x]

 - Function: int gsl_sf_bessel_k0_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_k0_scaled_e (double x, gsl_sf_result *
          result)
     Exp[x] k_0(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_k1_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_k1_scaled_e (double x, gsl_sf_result *
          result)
     exp(x) k_1(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW, GSL_EOVRFLW

 - Function: int gsl_sf_bessel_k2_scaled_impl (double x, gsl_sf_result
          * result)
 - Function: int gsl_sf_bessel_k2_scaled_e (double x, gsl_sf_result *
          result)
     exp(x) k_2(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW, GSL_EOVRFLW

 - Function: int gsl_sf_bessel_kl_scaled_impl (int l, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_kl_scaled_e (int l, double x,
          gsl_sf_result * result)
     exp(x) k_l(x)  Domain: x > 0.0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_kl_scaled_array_impl (int lmax, double
          x, double * result_array)
 - Function: int gsl_sf_bessel_kl_scaled_array_e (int lmax, double x,
          double * result_array)
     exp(x) k_l(x)  Domain: lmax >= 0 Conditions: l=0,1,...,lmax
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

Regular Bessel Function, Fractional Order
-----------------------------------------

 - Function: int gsl_sf_bessel_Jnu_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Jnu_e (double nu, double x,
          gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_sequence_Jnu_impl (double nu, gsl_mode_t
          mode, size_t size, double * v)
 - Function: int gsl_sf_bessel_sequence_Jnu_e (double nu, gsl_mode_t
          mode, size_t size, double * v)
     Regular cylindrical Bessel function J_nu(x) evaluated at a series
     of x values.  The array contains the x values.  They are assumed
     to be strictly ordered and positive.  The array is over-written
     with the values of J_nu(x_i).  Exceptional Return Values:
     GSL_EDOM, GSL_EINVAL

Irregular Bessel Functions, Fractional Order
--------------------------------------------

 - Function: int gsl_sf_bessel_Ynu_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Ynu_e (double nu, double x,
          gsl_sf_result * result)
     Exceptional Return Values:

Regular Modified Bessel Functions, Fractional Order
---------------------------------------------------

 - Function: int gsl_sf_bessel_Inu_scaled_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Inu_scaled_e (double nu, double x,
          gsl_sf_result * result)
     exp(-|x|) BesselI[nu, x]  Domain: x >= 0, nu >= 0 Exceptional
     Return Values: GSL_EDOM

 - Function: int gsl_sf_bessel_Inu_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Inu_e (double nu, double x,
          gsl_sf_result * result)
     BesselI[nu, x]  Domain: x >= 0, nu >= 0 Exceptional Return Values:
     GSL_EDOM, GSL_EOVRFLW

Irregular Modified Bessel Functions, Fractional Order
-----------------------------------------------------

 - Function: int gsl_sf_bessel_Knu_scaled_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Knu_scaled_e (double nu, double x,
          gsl_sf_result * result)
     Exp[+|x|] BesselK[nu, x]  Domain: x > 0, nu >= 0 Exceptional
     Return Values: GSL_EDOM

 - Function: int gsl_sf_bessel_Knu_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_Knu_e (double nu, double x,
          gsl_sf_result * result)
     BesselK[nu, x]  Domain: x > 0, nu >= 0 Exceptional Return Values:
     GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_bessel_lnKnu_impl (double nu, double x,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_lnKnu_e (double nu, double x,
          gsl_sf_result * result)
     Log[BesselK[nu, x]]  Domain: x > 0, nu >= 0 Exceptional Return
     Values: GSL_EDOM

Zeros of Regular Bessel Functions
---------------------------------

 - Function: int gsl_sf_bessel_zero_J0_impl (int s, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_zero_J0_e (int s, gsl_sf_result * result)
     s'th positive zero of the Bessel function J_0(x).  Exceptional
     Return Values:

 - Function: int gsl_sf_bessel_zero_J1_impl (int s, gsl_sf_result *
          result)
 - Function: int gsl_sf_bessel_zero_J1_e (int s, gsl_sf_result * result)
     s'th positive zero of the Bessel function J_1(x).  Exceptional
     Return Values:

 - Function: int gsl_sf_bessel_zero_Jnu_impl (double nu, int s,
          gsl_sf_result * result)
 - Function: int gsl_sf_bessel_zero_Jnu_e (double nu, int s,
          gsl_sf_result * result)
     s'th positive zero of the Bessel function J_nu(x).  Exceptional
     Return Values:

Chebyshev Polynomials
=====================

   The Chebyshev polynomials T_n(x) = \cos(n \arccos x) provide an
orthogonal basis of polynomials on the interval [-1,1], with the weight
function 1 \over \sqrt{1-x^2}.  The first few such polynomials are

      T_0(x) = 1,
      T_1(x) = x,
      T_2(x) = 2 x^2 - 1.

The gsl_sf_cheb_series struct
-----------------------------

     typedef struct
     {
       double * c;   /* coefficients                */
       int order;    /* order of expansion          */
       double a;     /* lower interval point        */
       double b;     /* upper interval point        */
       double * cp;  /* coefficients of derivative  */
       double * ci;  /* coefficients of integral    */

       /* The following exists (mostly) for the benefit
        * of the implementation.  It is an effective single
        * precision order, for use in single precision
        * evaluation.  Users can use it if they like, but
        * only they know how to calculate it, since it is
        * specific to the approximated function.  By default,
        * order_sp = order.
        * It is used explicitly only by the gsl_sf_cheb_eval_mode
        * functions, which are not meant for casual use.

       int order_sp;
     } gsl_sf_cheb_struct

Creation/Calculation of Chebyshev Series
----------------------------------------

 - Function: gsl_sf_cheb_series * gsl_sf_cheb_new (double
          (*func)(double),
     				     double a, double b, 				     int order) Calculate a
     Chebyshev series of specified order over a specified interval, for
     a given function.  Return 0 on failure.

 - Function: int gsl_sf_cheb_calc_impl (gsl_sf_cheb_series * cs, double
          (*func)(double))
 - Function: int gsl_sf_cheb_calc_e (gsl_sf_cheb_series * cs, double
          (*func)(double))
     Calculate a Chebyshev series, but do not allocate a new
     cheb_series struct.  Instead use the one provided.  Uses the
     interval (a,b) and the order with which it was initially created;
     if you want to change these, then use gsl_sf_cheb_new() instead.
     Exceptional Return Values: GSL_EFAULT, GSL_ENOMEM

Chebyshev Series Evaluation
---------------------------

 - Function: int gsl_sf_cheb_eval_impl (const gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
 - Function: int gsl_sf_cheb_eval_e (const gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
     Evaluate a Chebyshev series at a given point.  No errors can occur
     for a struct obtained from gsl_sf_cheb_new().

 - Function: int gsl_sf_cheb_eval_n_impl (const gsl_sf_cheb_series *
          cs, int order, double x, gsl_sf_result * result)
 - Function: int gsl_sf_cheb_eval_n_e (const gsl_sf_cheb_series * cs,
          int order, double x, gsl_sf_result * result)
     Evaluate a Chebyshev series at a given point, to (at most) the
     given order.  No errors can occur for a struct obtained from
     gsl_sf_cheb_new().

 - Function: int gsl_sf_cheb_eval_mode_impl (const gsl_sf_cheb_series *
          cs, double x, gsl_mode_t mode, gsl_sf_result * result)
 - Function: int gsl_sf_cheb_eval_mode_e (const gsl_sf_cheb_series *
          cs, double x, gsl_mode_t mode, gsl_sf_result * result)
     Evaluate a Chebyshev series at a given point, using the default
     order for double precision mode(s) and the single precision order
     for other modes.  No errors can occur for a struct obtained from
     gsl_sf_cheb_new().

 - Function: int gsl_sf_cheb_eval_deriv_impl (gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
 - Function: int gsl_sf_cheb_eval_deriv_e (gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
     Evaluate derivative of a Chebyshev series at a given point.

 - Function: int gsl_sf_cheb_eval_integ_impl (gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
 - Function: int gsl_sf_cheb_eval_integ_e (gsl_sf_cheb_series * cs,
          double x, gsl_sf_result * result)
     Evaluate integal of a Chebyshev series at a given point.  The
     integral is fixed by the condition that it equals zero at the left
     end-point, i.e. it is precisely  \int_a^x dt cs(t; a,b) .

Delete a Chebyshev Expansion
----------------------------

 - Function: void gsl_sf_cheb_free (gsl_sf_cheb_series * cs)
     Free a Chebyshev series previously calculated with
     gsl_sf_cheb_new().  No error can occur.

Clausen Functions
=================

   The Clausen integral is defined to be  Cl_2(x) = - \int_0^x dt
\log(2 \sin(t/2)) .

   It is related to the dilogarithm by  Cl_2(theta) = Im  Li_2(\exp(i
theta)) .

 - Function: int gsl_sf_clausen_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_clausen_e (double x, gsl_sf_result * result)

Coulomb Wave Functions
======================

Normalized Hydrogenic Bound States
----------------------------------

   /* R_1 := 2Z sqrt(Z) exp(-Z r)  */

 - Function: int gsl_sf_hydrogenicR_1_impl (double Z, double r,
          gsl_sf_result * result)
 - Function: int gsl_sf_hydrogenicR_1_e (double Z, double r,
          gsl_sf_result * result)

   /* R_n := norm exp(-Z r/n) (2Z/n)^l Laguerre[n-l-1, 2l+1, 2Z/n r]  *
* normalization such that psi(n,l,r) = R_n Y_(lm)  */

 - Function: int gsl_sf_hydrogenicR_impl (int n, int l, double Z,
          double r, gsl_sf_result * result)
 - Function: int gsl_sf_hydrogenicR_e (int n, int l, double Z, double
          r, gsl_sf_result * result)

Coulomb Wave Functions
----------------------

   /* Coulomb wave functions F_(lam_F)(eta,x), G_(lam_G)(eta,x)  * and
their derivatives; lam_G := lam_F - k_lam_G  *  * lam_F, lam_G > -0.5
* x > 0.0  *  * Conventions of Abramowitz+Stegun.   *  * Because their
can be a large dynamic range of values,  * overflows are handled
gracefully.  If an overflow occurs,  * GSL_EOVRFLW is signalled and
exponent(s) are returned  * through exp_F, exp_G. These are such that  *
*   F_L(eta,x)  =  fc[k_L] * exp(exp_F)  *   G_L(eta,x)  =  gc[k_L] *
exp(exp_G)  *   F_L'(eta,x) = fcp[k_L] * exp(exp_F)  *   G_L'(eta,x) =
gcp[k_L] * exp(exp_G)  */ int gsl_sf_coulomb_wave_FG_impl(const double
eta, const double x, const double lam_F, const int  k_lam_G,
gsl_sf_result * F, gsl_sf_result * Fp, gsl_sf_result * G, gsl_sf_result
* Gp, double * exp_F, double * exp_G)

   /* F_L(eta,x)  */

 - Function: int gsl_sf_coulomb_wave_F_array_impl (double lam_min, int
          kmax, double eta, double x, double * fc_array, double *
          F_exponent)
 - Function: int gsl_sf_coulomb_wave_F_array_e (double lam_min, int
          kmax, double eta, double x, double * fc_array, double *
          F_exponent)

   /* F_L(eta,x), G_L(eta,x)  */

 - Function: int gsl_sf_coulomb_wave_FG_array_impl (double lam_min, int
          kmax, double eta, double x, double * fc_array, double *
          gc_array, double * F_exponent, double * G_exponent)
 - Function: int gsl_sf_coulomb_wave_FG_array_e (double lam_min, int
          kmax, double eta, double x, double * fc_array, double *
          gc_array, double * F_exponent, double * G_exponent)

   /* F_L(eta,x), G_L(eta,x), F'_L(eta,x), G'_L(eta,x)  */

 - Function: int gsl_sf_coulomb_wave_FGp_impl (double lam_min, int
          kmax, double eta, double x, gsl_sf_result * fc, gsl_sf_result
          * fcp, gsl_sf_result * gc, gsl_sf_result * gcp, double *
          F_exponent, double * G_exponent)
 - Function: int gsl_sf_coulomb_wave_FGp_e (double lam_min, int kmax,
          double eta, double x, gsl_sf_result * fc, gsl_sf_result *
          fcp, gsl_sf_result * gc, gsl_sf_result * gcp, double *
          F_exponent, double * G_exponent)

   /* Coulomb wave function divided by the argument,  * F(xi, eta)/xi.
This is the function which reduces to  * spherical Bessel functions in
the limit eta->0.   */

 - Function: int gsl_sf_coulomb_wave_sphF_array_impl (double lam_min,
          int kmax, double eta, double x, double * fc_array, double *
          F_exponent)

Coulomb Wave Function Normalization Constant
--------------------------------------------

   [Abramowitz+Stegun 14.1.8, 14.1.9]

 - Function: int gsl_sf_coulomb_CL_impl (double L, double eta,
          gsl_sf_result * result)
 - Function: int gsl_sf_coulomb_CL_list (double Lmin, int kmax, double
          eta, double * cl)

Coupling Coefficients
=====================

   Since the arguments of the standard coupling coefficient functions
are integer or half-integer, the arguments of the following functions
are by convention integers equal to twice the actual spin value.

3j Symbols
----------

ja    jb    jc
ma    mb    mc

 - Function: int gsl_sf_coupling_3j_impl (int two_ja, int two_jb, int
          two_jc, int two_ma, int two_mb, int two_mc, gsl_sf_result *
          result)
 - Function: int gsl_sf_coupling_3j_e (int two_ja, int two_jb, int
          two_jc, int two_ma, int two_mb, int two_mc, gsl_sf_result *
          result)
     Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW

6j Symbols
----------

ja    jb    jc
jd    je    jf

 - Function: int gsl_sf_coupling_6j_impl (int two_ja, int two_jb, int
          two_jc, int two_jd, int two_je, int two_jf, gsl_sf_result *
          result)
 - Function: int gsl_sf_coupling_6j_e (int two_ja, int two_jb, int
          two_jc, int two_jd, int two_je, int two_jf, gsl_sf_result *
          result)
     Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW

9j Symbols
----------

ja    jb    jc
jd    je    jf
jg    jh    ji

 - Function: int gsl_sf_coupling_9j_impl (int two_ja, int two_jb, int
          two_jc, int two_jd, int two_je, int two_jf, int two_jg, int
          two_jh, int two_ji, gsl_sf_result * result)
 - Function: int gsl_sf_coupling_9j_e (int two_ja, int two_jb, int
          two_jc, int two_jd, int two_je, int two_jf, int two_jg, int
          two_jh, int two_ji, gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW

Dawson Function
===============

   The Dawson integral is defined by  \exp(-x^2) \int_0^x dt \exp(t^2) .

 - Function: int gsl_sf_dawson_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_dawson_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EUNDRFLW

Debye Functions
===============

   The Debye integrals are defined by  D_n(x) = n/x^n \int_0^x dt
t^n/(e^t - 1) .

 - Function: int gsl_sf_debye_1_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_debye_1_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_debye_2_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_debye_2_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_debye_3_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_debye_3_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

 - Function: int gsl_sf_debye_4_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_debye_4_e (double x, gsl_sf_result * result)
     Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW

Dilogarithm
===========

Real Argument
-------------

   In Lewin's notation this is  Li_2(x) , the real part of the
dilogarithm of a real x.  It is defined by the integral representation
Li_2(x) = - Re \int_0^x ds \log(1-s) / s .  Note that  Im Li_2(x) = ( 0
for x <= 1, -Pi*log(x) for x > 1 ) .

 - Function: int gsl_sf_dilog_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_dilog_e (double x, gsl_sf_result * result)

Complex Argument
----------------

   This is the full complex-valued dilogarithm for complex argument.
The argument is  z = r \exp(i theta) .

 - Function: int gsl_sf_complex_dilog_impl (double r, double theta,
          gsl_sf_result * result_re, gsl_sf_result * result_im)
 - Function: int gsl_sf_complex_dilog_e (double r, double theta,
          gsl_sf_result * result_re, gsl_sf_result * result_im)

Elementary Operations
=====================

 - Function: int gsl_sf_multiply_impl (double x, double y,
          gsl_sf_result * result)
 - Function: int gsl_sf_multiply_e (double x, double y, gsl_sf_result *
          result)
     Multiplication.  Exceptional Return Values: GSL_EOVRFLW,
     GSL_EUNDRFLW

 - Function: int gsl_sf_multiply_err_impl (double x, double dx, double
          y, double dy, gsl_sf_result * result)
 - Function: int gsl_sf_multiply_err_e (double x, double dx, double y,
          double dy, gsl_sf_result * result)
     Multiplication of quantities with associated errors.  Exceptional
     Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

Elliptic Integrals
==================

Legendre Forms
--------------

   The Legendre forms of elliptic integrals are defined by  F(phi,k)
= \int_0^\phi dt 1/\sqrt(1 - k^2 \sin(t)^2) ;  E(phi,k)   = \int_0^\phi
dt   \sqrt(1 - k^2 \sin(t)^2) ;  P(phi,k,n) = \int_0^\phi dt (1 + n
\sin(t)^2)^(-1)/\sqrt(1 - k^2 \sin(t)^2) .

   The complete Legendre forms are denoted by  K(k) = F(\pi/2, k) ;
E(k) = E(\pi/2, k) .

Carlson Forms
-------------

   The Carlson symmetric forms are defined by  RC(x,y)   = 1/2
\int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1) ;  RD(x,y,z) = 3/2
\int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-3/2) ;  RF(x,y,z) =
1/2 \int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-1/2) ;
RJ(x,y,z,p) = 3/2 \int_0^\infty dt (t+x)^(-1/2) (t+y)^(-1/2)
(t+z)^(-1/2) (t+p)^(-1) .

Legendre Form of Complete Elliptic Integrals
--------------------------------------------

 - Function: int gsl_sf_ellint_Kcomp_impl (double k, gsl_mode_t mode,
          gsl_sf_result * result);
 - Function: int gsl_sf_ellint_Kcomp_e (double k, gsl_mode_t mode,
          gsl_sf_result * result);
     Exceptional Return Values:  GSL_EDOM

 - Function: int gsl_sf_ellint_Ecomp_impl (double k, gsl_mode_t mode,
          gsl_sf_result * result);
 - Function: int gsl_sf_ellint_Ecomp_e (double k, gsl_mode_t mode,
          gsl_sf_result * result);
     Exceptional Return Values:  GSL_EDOM

Legendre Form of Incomplete Elliptic Integrals
----------------------------------------------

 - Function: int gsl_sf_ellint_F_impl (double phi, double k, gsl_mode_t
          mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_F_e (double phi, double k, gsl_mode_t
          mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_E_impl (double phi, double k, gsl_mode_t
          mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_E_e (double phi, double k, gsl_mode_t
          mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_P_impl (double phi, double k, double n,
          gsl_mode_t mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_P_e (double phi, double k, double n,
          gsl_mode_t mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_D_impl (double phi, double k, double n,
          gsl_mode_t mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_D_e (double phi, double k, double n,
          gsl_mode_t mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

Carlson Forms
-------------

 - Function: int gsl_sf_ellint_RC_impl (double x, double y, gsl_mode_t
          mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_RC_e (double x, double y, gsl_mode_t
          mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_RD_impl (double x, double y, double z,
          gsl_mode_t mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_RD_e (double x, double y, double z,
          gsl_mode_t mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_RF_impl (double x, double y, double z,
          gsl_mode_t mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_RF_e (double x, double y, double z,
          gsl_mode_t mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

 - Function: int gsl_sf_ellint_RJ_impl (double x, double y, double z,
          double p, gsl_mode_t mode, gsl_sf_result * result);
 - Function: int gsl_sf_ellint_RJ_e (double x, double y, double z,
          double p, gsl_mode_t mode, gsl_sf_result * result);
     Exceptional Return Values: GSL_EDOM

Elliptic Functions (Jacobi)
===========================

 - Function: int gsl_sf_elljac_impl (double u, double m, double * sn,
          double * cn, double * dn)
 - Function: int gsl_sf_elljac_e (double u, double m, double * sn,
          double * cn, double * dn)
     Jacobian elliptic functions sn, dn, cn, calculated by descending
     Landen transformations.  Exceptional Return Values: GSL_EDOM

Error Function
==============

Complementary Error Function
----------------------------

   We have  erfc(x) = 2/\sqrt(Pi) \int_x^\infty \exp(-t^2) .

 - Function: int gsl_sf_erfc_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_erfc_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

Log Complementary Error Function
--------------------------------

 - Function: int gsl_sf_log_erfc_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_log_erfc_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

Error Function
--------------

   We have  erf(x) = 2/\sqrt(Pi) \int_0^x dt \exp(-t^2) .

 - Function: int gsl_sf_erf_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_erf_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

Probability functions
---------------------

   Z(x) :  Abramowitz+Stegun 26.2.1 Q(x) :  Abramowitz+Stegun 26.2.3

 - Function: int gsl_sf_erf_Z_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_erf_Q_impl (double x, gsl_sf_result * result)
 - Function: int gsl_sf_erf_Z_e (double x, gsl_sf_result * result)
 - Function: int gsl_sf_erf_Q_e (double x, gsl_sf_result * result)
     Exceptional Return Values: none

Exponential Function
====================

Exponential Function
--------------------

   /* Provide an exp() function with GSL semantics,  * i.e. with proper
error checking, etc.   *

 - Function: int gsl_sf_exp_impl (double x, gsl_sf_result * result);
 - Function: int gsl_sf_exp_e (double x, gsl_sf_result * result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

   /* Exp(x)  *

 - Function: int gsl_sf_exp_e10_impl (double x, gsl_sf_result_e10 *
          result);
 - Function: int gsl_sf_exp_e10_e (double x, gsl_sf_result_e10 *
          result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

   /* Exponentiate and multiply by a given factor:  y * Exp(x)  *

 - Function: int gsl_sf_exp_mult_impl (double x, double y,
          gsl_sf_result * result);
 - Function: int gsl_sf_exp_mult_e (double x, double y, gsl_sf_result *
          result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

   /* Exponentiate and multiply by a given factor:  y * Exp(x)  *

 - Function: int gsl_sf_exp_mult_e10_impl (const double x, const double
          y, gsl_sf_result_e10 * result);
 - Function: int gsl_sf_exp_mult_e10_e (const double x, const double y,
          gsl_sf_result_e10 * result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

Relative Exponential Functions
------------------------------

   /* exp(x)-1  *

 - Function: int gsl_sf_expm1_impl (double x, gsl_sf_result * result);
 - Function: int gsl_sf_expm1_e (double x, gsl_sf_result * result);
     Exceptional Return Values:  GSL_EOVRFLW

   /* (exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + ...   *

 - Function: int gsl_sf_exprel_impl (double x, gsl_sf_result * result);
 - Function: int gsl_sf_exprel_e (double x, gsl_sf_result * result);
     Exceptional Return Values:  GSL_EOVRFLW

   /* 2(exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + ...   *

 - Function: int gsl_sf_exprel_2_impl (double x, gsl_sf_result *
          result);
 - Function: int gsl_sf_exprel_2_e (double x, gsl_sf_result * result);
     Exceptional Return Values:  GSL_EOVRFLW

   /* Similarly for the N-th generalization of  * the above.  The
so-called N-relative exponential  *  * exprel_N(x) = N!/x^N (exp(x) -
Sum[x^k/k!, (k,0,N-1)])  *             = 1 + x/(N+1) + x^2/((N+1)(N+2))
+ ...   *             = 1F1(1,1+N,x)  */

 - Function: int gsl_sf_exprel_n_impl (int n, double x, gsl_sf_result *
          result);
 - Function: int gsl_sf_exprel_n_e (int n, double x, gsl_sf_result *
          result);
     Exceptional Return Values:

Exponentiation With Error Estimate
----------------------------------

   /* Exponentiate a quantity with an associated error.   */

 - Function: int gsl_sf_exp_err_impl (double x, double dx,
          gsl_sf_result * result);
 - Function: int gsl_sf_exp_err_e (double x, double dx, gsl_sf_result *
          result);
     Exceptional Return Values:

   /* Exponentiate a quantity with an associated error.   */

 - Function: int gsl_sf_exp_err_e10_impl (double x, double dx,
          gsl_sf_result_e10 * result);
 - Function: int gsl_sf_exp_err_e10_e (double x, double dx,
          gsl_sf_result_e10 * result);
     Exceptional Return Values:

   /* Exponentiate and multiply by a given factor:  y * Exp(x),  * for
quantities with associated errors.   *

 - Function: int gsl_sf_exp_mult_err_impl (double x, double dx, double
          y, double dy, gsl_sf_result * result);
 - Function: int gsl_sf_exp_mult_err_e (double x, double dx, double y,
          double dy, gsl_sf_result * result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW

   /* Exponentiate and multiply by a given factor:  y * Exp(x),  * for
quantities with associated errors.   *

 - Function: int gsl_sf_exp_mult_err_e10_impl (double x, double dx,
          double y, double dy, gsl_sf_result_e10 * result);
 - Function: int gsl_sf_exp_mult_err_e10_e (double x, double dx, double
          y, double dy, gsl_sf_result_e10 * result);
     Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW